\subsection{Compilado dependiente de la plataforma}
\label{scriptconfig}
Para compilar el programa tanto en \platformhost\space como en \platformguest\space se utilizó un makefile adecuado para cada plataforma, el cuál a su vez es generado por el script \quotefile{configure.sh}, el cuál detecta la plataforma y copia desde el esqueleto apropiado el makefile.

\begin{flushleft}
\filebox{A continuación se muestra el archivo \textcolor{red}{\quotefile{configure.sh}}:}{Aluminium2}
\end{flushleft}

%******************************************************************************************
\lstset{language=sh,numbers=left,xleftmargin=1em,stepnumber=1}

\lstset{showspaces=false}
\lstset{showstringspaces=false}
\normalfont
\normalsize
\lstset{backgroundcolor=\color{white},rulecolor=\color{blue}}
\lstset{basicstyle=\ttfamily\color{deepblue}}

\lstset{keywordstyle=[1]\ttfamily\color{red}\bfseries}
\lstset{keywordstyle=[2]\ttfamily\color{LightSkyBlue}}
\lstset{keywordstyle=[3]\ttfamily\bfseries\color{Plum}}
\lstset{keywordstyle=[4]\ttfamily\bfseries\color{Chocolate}}

\lstset{identifierstyle=\ttfamily\color{black}}
\lstset{commentstyle=\ttfamily\color{blue}\textit}
\lstset{stringstyle=\ttfamily\color{purple}\upshape}
\lstset{tabsize=8}

\lstset{numberstyle=\ttfamily\color{deeppurple}\upshape}
\lstset{numbersep=5pt}

\lstset{inputencoding=utf8/latin1}


\fontencoding{T1}
\fontseries{m}
\fontsize{6pt}{7pt}
\selectfont
%******************************************************************************************

%*********************************************
\lstinputlisting{./../configure.sh}
%*********************************************

\normalfont
\normalsize

\subsection{Opciones válidas para make}

El ejecutable se puede producir con o sin símbolos para debugging, dependiendo de que la opción \textbf{DEBUG} se pase como DEBUG=1 o como DEBUG=0 (es lo mismo en este caso omitirla), esto es válido solo para \platformhost\space dado que en \platformguest\space solo se compila hacia \langmipsass, (Ver la tabla siguiente, que incluye todas las opciones posibles~[\ref{tab:maketb}]). Como la implementación de \make\space que se encuentra en \oshost\space es \GNU\space\make, la sintaxis de los archivos makefile que maneja no es la misma que en la versión de \make\space que se encuentra en \osguest, se escribieron dos versiones que aceptan la misma línea de comando (salvo opciones específicas a una plataforma), simplificando la compilación del programa.
A continuación se listan las posibles opciones que se pueden pasar a \make\space en ambas plataformas:
\vspace{1cm}




\begin{flushleft}
\Needspace*{15\baselineskip}

\begin{table}[!h]

\begin{tabular}{ll}
%\begin{tabularx}{\textwidth}{ XX }

En \platformhost:&\\
\toprule

\multicolumn{1}{|>{\columncolor{white}}l|}{\make\space [DEBUG=0]}& 
\multicolumn{1}{>{\columncolor{Aluminium1}}l|}{Genera el ejecutable sin símbolos para debugging (equivale a \make).}
\\
\hline

\multicolumn{1}{|>{\columncolor{white}}l|}{\make\space DEBUG=1}& 
\multicolumn{1}{>{\columncolor{Aluminium1}}l|}{Genera el ejecutable con símbolos para debugging.}
\\
\hline

\multicolumn{1}{|>{\columncolor{white}}l|}{\make\space test [DEBUG=1]}& 
\multicolumn{1}{>{\columncolor{Aluminium1}}l|}{\label{maketestscript} Genera el ejecutable con símbolos para debugging y corre las pruebas~[\ref{testscript}].}
\\
\hline

\multicolumn{1}{|>{\columncolor{white}}l|}{\make\space clean}& 
\multicolumn{1}{>{\columncolor{Aluminium1}}l|}{Elimina los archivos intermedios y el ejecutable producidos.}
\\
\bottomrule

	

&\\
En \platformguest:&\\
\midrule

\multicolumn{1}{|>{\columncolor{white}}l|}{\make}& 
\multicolumn{1}{>{\columncolor{Aluminium1}}l|}{Compila el programa hacia \langmipsass.}
\\
\hline

\multicolumn{1}{|>{\columncolor{white}}l|}{\make\space clean}& 
\multicolumn{1}{>{\columncolor{Aluminium1}}l|}{Elimina los archivos intermedios y de assembly producidos.}
\\
\bottomrule

		
\end{tabular}


\caption{\label{tab:maketb}\footnotesize{Opciones válidas para \make.}}
\end{table}



\normalfont
\normalsize

\vspace{1cm}

\Needspace*{5\baselineskip}
Finalmente para compilar en cualquiera de las plataformas se debe ejecutar:\\

\end{flushleft}


%******************************************************************************************
\lstset{language=sh,xleftmargin=1em,numbers=none}

\lstset{showspaces=false}
\lstset{showstringspaces=false}
\normalfont
\normalsize
\lstset{backgroundcolor=\color{white},rulecolor=\color{blue}}
\lstset{basicstyle=\ttfamily\color{deepblue}}

\lstset{keywordstyle=[1]\ttfamily\color{red}\bfseries}
\lstset{keywordstyle=[2]\ttfamily\color{LightSkyBlue}}
\lstset{keywordstyle=[3]\ttfamily\bfseries\color{Plum}}
\lstset{keywordstyle=[4]\ttfamily\bfseries\color{Chocolate}}

\lstset{identifierstyle=\ttfamily\color{black}}
\lstset{commentstyle=\ttfamily\color{blue}\textit}
\lstset{stringstyle=\ttfamily\color{purple}\upshape}
\lstset{tabsize=8}

\lstset{numberstyle=\ttfamily\color{deeppurple}\upshape}
\lstset{numbersep=5pt}

\lstset{inputencoding=utf8/latin1}



\fontencoding{T1}
\fontseries{m}
\fontsize{10pt}{11pt}
\selectfont
%******************************************************************************************


\begin{lstlisting}
.\configure.sh
make [options]
\end{lstlisting}


\normalfont
\normalsize


\clearpage





\subsection{makefiles de ambas plataformas}

\begin{flushleft}
\filebox{A continuación se muestra el archivo \textcolor{red}{\quotefile{makefile-linux}}:}{Aluminium2}
\end{flushleft}

%******************************************************************************************
\lstset{language=make,numbers=left,xleftmargin=1em,stepnumber=1}

\lstset{showspaces=false}
\lstset{showstringspaces=false}

\lstset{backgroundcolor=\color{white},rulecolor=\color{blue}}
\lstset{basicstyle=\ttfamily\color{deepblue}}

\lstset{keywordstyle=[1]\ttfamily\color{red}\bfseries}
\lstset{keywordstyle=[2]\ttfamily\color{LightSkyBlue}}
\lstset{keywordstyle=[3]\ttfamily\bfseries\color{Plum}}
\lstset{keywordstyle=[4]\ttfamily\bfseries\color{Chocolate}}

\lstset{identifierstyle=\ttfamily\color{black}}
\lstset{commentstyle=\ttfamily\color{Aluminium4}\textit}
\lstset{stringstyle=\ttfamily\color{purple}\upshape}
\lstset{tabsize=8}

\lstset{numberstyle=\ttfamily\color{deeppurple}\upshape}
\lstset{numbersep=5pt}

\lstset{inputencoding=utf8/latin1}


\fontencoding{T1}
\fontseries{m}
\fontsize{6pt}{7pt}
\selectfont
%******************************************************************************************

%*********************************************
\ifthenelse{\boolean{IsWindows}}
{
\lstinputlisting{./../makefile-linux.}
}
{
\lstinputlisting{./../makefile-linux}
}
%*********************************************

\normalfont
\normalsize


\begin{flushleft}
\filebox{A continuación se muestra el archivo \textcolor{red}{\quotefile{makefile-netbsd}}:}{Aluminium2}
\end{flushleft}


%******************************************************************************************
\lstset{language=make,numbers=left,xleftmargin=1em,stepnumber=1}

\lstset{showspaces=false}
\lstset{showstringspaces=false}

\lstset{backgroundcolor=\color{white},rulecolor=\color{blue}}
\lstset{basicstyle=\ttfamily\color{deepblue}}

\lstset{keywordstyle=[1]\ttfamily\color{red}\bfseries}
\lstset{keywordstyle=[2]\ttfamily\color{LightSkyBlue}}
\lstset{keywordstyle=[3]\ttfamily\bfseries\color{Plum}}
\lstset{keywordstyle=[4]\ttfamily\bfseries\color{Chocolate}}

\lstset{identifierstyle=\ttfamily\color{black}}
\lstset{commentstyle=\ttfamily\color{Aluminium4}\textit}
\lstset{stringstyle=\ttfamily\color{purple}\upshape}
\lstset{tabsize=8}

\lstset{numberstyle=\ttfamily\color{deeppurple}\upshape}
\lstset{numbersep=5pt}

\lstset{inputencoding=utf8/latin1}


\fontencoding{T1}
\fontseries{m}
\fontsize{6pt}{7pt}
\selectfont
%******************************************************************************************

%*********************************************
\ifthenelse{\boolean{IsWindows}}
{
\lstinputlisting{./../makefile-netbsd.}
}
{
\lstinputlisting{./../makefile-netbsd}
}
%*********************************************

\normalfont
\normalsize


\clearpage



